﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Joel.Vishnu.Presentacion;
using Joel.Vishnu.Presentacion.Vistas;

namespace Joel.Vishnu.SitioWeb
{
    public partial class Iva : System.Web.UI.Page, IIva
    {
        #region Atributos

        private IvaPresentador presentador;

        #endregion

        #region Propiedades

        public String Valor
        {
            get { return txtIva.Text; }
            set { txtIva.Text = value; }
        }

        #endregion

        #region Metodos

        private void HabilitarControles()
        {
            txtIva.Enabled = !txtIva.Enabled;

            btnModificar.Enabled = !btnModificar.Enabled;
            btnAceptar.Enabled = !btnAceptar.Enabled;
            btnCancelar.Enabled = !btnCancelar.Enabled;
        }

        #endregion

        #region Eventos

        protected void Page_Load(Object sender, EventArgs e)
        {
            try
            {
                presentador = new IvaPresentador(this);
                if (!Page.IsPostBack)
                    presentador.Inicializar();
                lblErrores.Text = String.Empty;
                btnModificar.Focus();
            }
            catch (Exception ex)
            {
                lblErrores.Text = ex.Message;
            }
        }

        protected void txtIva_TextChanged(Object sender, EventArgs e)
        {
            try
            {
                Convert.ToDecimal(txtIva.Text);
            }
            catch (Exception ex)
            {
                lblErrores.Text = "Debe ingresar sólo números entre 0 y 100. ";
            }
            try
            {
                if (Convert.ToDecimal(txtIva.Text) < 0 || Convert.ToDecimal(txtIva.Text) > 100)
                    throw new Exception("Debe ingresar sólo números entre 0 y 100. ");
            }
            catch (Exception ex)
            {
                lblErrores.Text = ex.Message;
            }
        }

        protected void btnModificar_Click(Object sender, EventArgs e)
        {
            HabilitarControles();
            txtIva.Focus();
        }

        protected void btnAceptar_Click(Object sender, EventArgs e)
        {
            try
            {
                presentador.Aceptar();
                HabilitarControles();
                btnModificar.Focus();
            }
            catch (Exception ex)
            {
                lblErrores.Text = ex.Message;
            }
        }

        protected void btnCancelar_Click(Object sender, EventArgs e)
        {
            HabilitarControles();
            presentador.Inicializar();
            btnModificar.Focus();
        }

        #endregion
    }
}